home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Item MB Quick & Easy 2.0
/
Item MB Quick & Easy 2.0.iso
/
mbfacad
/
mb37323.lsp
< prev
next >
Wrap
Text File
|
1998-03-15
|
17KB
|
456 lines
;=============373.23 MULTIBLOCK 8 Zn
(defun C:37323SV ( / X P1 P2 P3 P4 P5 P6 P7 P8 P9 P10 P11 Wi Wix WH WV
E1 SS1 BName)
(EAITDBL "0037323")
(princ (strcat "\n\n" EAITbez1))
(EAITvari)
(EAITvars)
(setq X nil)
(while (not X)
(if (not EAITebl)(setq EAITebl 10))
(princ (strcat "\n" (EAITmg "mb_mld15" "009")" (8 - 22) <"))(princ EAITebl)(princ "> : ") ;Einbaulage X (8 - 22) < EAITebl >:
(initget 6)
(setq X (getint))
(cond ((= X nil)(setq X EAITebl))
((AND (>= X 8)(<= X 22))(princ))
(T (setq X nil))
)
)
(setq EAITebl X)
(setvar "ORTHOMODE" 1)
(EAITbpt EAITofpun 8 nil)
(setq P1 (getpoint))
(if (= P1 nil)(setq P1 (EAITrpt)))
(setvar "ORTHOMODE" 0)
(setvar "OSMODE" 0)
(initget 1)
(EAITmsg "mb_mld15" "\n" "006" nil) ;Lage des Flaechenelementes
(setq Wi (getangle P1)
Wix (EAITbig Wi))
(cond ((and (>= Wix 0)(< Wix 90))(setq WH 0 WV 90 Wix 0))
((and (>= Wix 90)(< Wix 180))(setq WH 180 WV 90 Wix 180))
((and (>= Wix 180)(< Wix 270))(setq WH 180 WV 270 Wix 180))
(T (setq WH 0 WV 270 Wix 0))
)
(setq P2 (polar P1 (EAITgib WV) EAITebl)
P3 (polar P2 (EAITgib WH) 30)
P4 (polar P3 (EAITgib (+ WV 180)) 8.85)
P5 (polar P1 (EAITgib WV) (- EAITebl 30))
P6 (polar P5 (EAITgib WH) 8.85)
P7 (polar P2 (EAITgib WH) 8)
P8 (polar P2 (EAITgib WH) 12)
P9 (polar P2 (EAITgib WH) 17)
P10(polar P2 (EAITgib WH) 22)
)
(command EAITlay EAITlse "EAIT50" ""
EAITplin P2 P3 P4 P6 P5 EAITpls
)
(setq E1 (entlast))
(command EAITlay EAITlse "EAITstp" ""
EAITlin (polar P1 (EAITgib WH) 8) (polar P1 (EAITgib WH) -12) ""
EAITlin (polar P7 (EAITgib WV) 5) (polar P7 (EAITgib WV) -5) ""
EAITlin (polar P8 (EAITgib WV) 5) (polar P8 (EAITgib WV) -5) ""
EAITlin (polar P9 (EAITgib WV) 5) (polar P9 (EAITgib WV) -5) ""
EAITlin (polar P10(EAITgib WV) 5) (polar P10(EAITgib WV) -5) ""
)
(setq BName (EAITbnr))
(setq SS1 (EAITSS E1))
(command EAITblo BName P1 SS1 ""
EAITege BName P1 "" "" "")
(command EAITege (strcat EAITpfn "EAITinfo") (polar (polar P1 (EAITgib WH) 10) (EAITgib WV) 0) "" "" ""
EAITbez1 EAITbez2 EAITlie1 EAITlie2 EAITwer1 EAITwer2 (rtos EAITl1 2 1) (rtos EAITb1 2 1) EAITnr
)
(EAITvarz2)
(princ)
);defun SV
(defun C:37323SH ( / X P1 P2 P3 P4 P5 P6 P7 P8 P9 P10 P11 Wi Wix WH WV
E1 SS1 BName )
(EAITDBL "0037323")
(princ (strcat "\n\n" EAITbez1))
(EAITvari)
(EAITvars)
(setq X nil)
(while (not X)
(if (not EAITebl)(setq EAITebl 10))
(princ (strcat "\n" (EAITmg "mb_mld15" "009")" (8 - 22) <"))(princ EAITebl)(princ "> : ") ;Einbaulage X (8 - 22) < EAITebl >:
(initget 6)
(setq X (getint))
(cond ((= X nil)(setq X EAITebl))
((AND (>= X 8)(<= X 22))(princ))
(T (setq X nil))
)
)
(setq EAITebl X)
(setvar "ORTHOMODE" 1)
(EAITbpt EAITofpun 8 nil)
(setq P1 (getpoint))
(if (= P1 nil)(setq P1 (EAITrpt)))
(setvar "ORTHOMODE" 0)
(setvar "OSMODE" 0)
(initget 1)
(EAITmsg "mb_mld15" "\n" "006" nil) ;Lage des Flaechenelementes
(setq Wi (getangle P1)
Wix (EAITbig Wi))
(cond ((and (>= Wix 0)(< Wix 90))(setq WH 0 WV 90 Wix 90))
((and (>= Wix 90)(< Wix 180))(setq WH 180 WV 90 Wix 90))
((and (>= Wix 180)(< Wix 270))(setq WH 180 WV 270 Wix 270))
(T (setq WH 0 WV 270 Wix 270))
)
(setq P2 (polar P1 (EAITgib WH) EAITebl)
P3 (polar P2 (EAITgib WV) 30)
P4 (polar P3 (EAITgib (+ WH 180)) 8.85)
P5 (polar P1 (EAITgib WH) (- EAITebl 30))
P6 (polar P5 (EAITgib WV) 8.85)
P7 (polar P2 (EAITgib WV) 8)
P8 (polar P2 (EAITgib WV) 12)
P9 (polar P2 (EAITgib WV) 17)
P10(polar P2 (EAITgib WV) 22)
)
(command EAITlay EAITlse "EAIT50" ""
EAITplin P2 P3 P4 P6 P5 EAITpls
)
(setq E1 (entlast))
(command EAITlay EAITlse "EAITstp" ""
EAITlin (polar P1 (EAITgib WV) 8) (polar P1 (EAITgib WV) -12) ""
EAITlin (polar P7 (EAITgib WH) 5) (polar P7 (EAITgib WH) -5) ""
EAITlin (polar P8 (EAITgib WH) 5) (polar P8 (EAITgib WH) -5) ""
EAITlin (polar P9 (EAITgib WH) 5) (polar P9 (EAITgib WH) -5) ""
EAITlin (polar P10(EAITgib WH) 5) (polar P10(EAITgib WH) -5) ""
)
(setq BName (EAITbnr))
(setq SS1 (EAITSS E1))
(command EAITblo BName P1 SS1 ""
EAITege BName P1 "" "" "")
(command EAITege (strcat EAITpfn "EAITinfo") (polar (polar P1 (EAITgib WV) 10) (EAITgib WH) 0) "" "" ""
EAITbez1 EAITbez2 EAITlie1 EAITlie2 EAITwer1 EAITwer2 (rtos EAITl1 2 1) (rtos EAITb1 2 1) EAITnr
)
(EAITvarz2)
(princ)
);defun SH
(defun C:37323V1 ( / X NL P0 P1 P2 P3 P4 P5 P6 P7 P8 P10 P11 P12 P13
WH WV)
(EAITDBL "0037323")
(princ (strcat "\n\n" EAITbez1))
(EAITvari)
(EAITvars)
;Einbaulage
(setq X nil)
(while (not X)
(if (not EAITebl)(setq EAITebl 10))
(princ (strcat "\n" (EAITmg "mb_mld15" "009")" (8 - 22) <"))(princ EAITebl)(princ "> : ") ;Einbaulage X (8 - 22) < EAITebl >:
(initget 6)
(setq X (getint))
(cond ((= X nil)(setq X EAITebl))
((AND (>= X 8)(<= X 22))(princ))
(T (setq X nil))
)
)
(setq EAITebl X)
;Lage
(setvar "ORTHOMODE" 0)
(setvar "OSMODE" 32)
(EAITmsg "mb_mld15" "\n" "007" " :") ;1. Nutlinie:
(setq NL (entsel " ")
P0 (osnap (cadr NL) EAITofnaec))
(EAITmsg "mb_mld15" "\n" "008" nil)(EAITmsg "mb_mld10" " " "015" " : ")(princ "<")(princ EAITofsch)(princ "> ")
; Punkt auf 2. Nutlinie (Return = relativ) : <SCH>
(setq P1 (getpoint P0))
(if (= P1 nil)(setq P1 (EAITrpt)))
(setvar "ORTHOMODE" 0)
(setvar "OSMODE" 0)
(setq P10 (osnap P0 EAITofend)
P12 (osnap P0 EAITofmit)
WH (angle P10 P12)
WV (+ WH (/ Pi 2))
P13 (inters P1 (polar P1 WV 4) P10 P12 nil)
P1 (mapcar '/ (mapcar '+ P13 P1) '(2 2 2))
WV (angle P1 P13)
WH (+ WV (/ Pi 2))
WH (EAITbig WH)
WV (EAITbig WV)
)
(if (/= (cdr (assoc 2 (entget (car NL)))) nil) (command EAITurs P0) )
(command EAITzom EAITzof (mapcar '- P1 '(50 50 0)) (mapcar '+ P1 '(100 100 0)))
(if (= EAITebl 22)
(if (/= (ssget (polar P1 (EAITgib WV) 20)) nil)
(command EAITbru (polar P1 (EAITgib WV) 20) EAITbre (polar (polar P1 (EAITgib WH) -10) (EAITgib WV) 20) (polar (polar P1 (EAITgib WH) 20) (EAITgib WV) 20))
)
)
(if (= EAITebl 8)
(if (/= (ssget (polar P1 (EAITgib WV) -20)) nil)
(command EAITbru (polar P1 (EAITgib WV) -20) EAITbre (polar (polar P1 (EAITgib WH) 10) (EAITgib WV) -20) (polar (polar P1 (EAITgib WH) -20) (EAITgib WV) 20))
)
)
(if (/= (ssget (polar P1 (EAITgib WV) 4)) nil)
(command EAITbru (polar P1 (EAITgib WV) 4) EAITbre (polar (polar P1 (EAITgib WH) -10) (EAITgib WV) 4) (polar (polar P1 (EAITgib WH) 20) (EAITgib WV) 4))
)
(if (/= (ssget (polar P1 (EAITgib WV) -4)) nil)
(command EAITbru (polar P1 (EAITgib WV) -4) EAITbre (polar (polar P1 (EAITgib WH) -10) (EAITgib WV) -4) (polar (polar P1 (EAITgib WH) 20) (EAITgib WV) -4))
)
;**************Punkte festlegen
(setq P3 (polar P1 (EAITgib WH) -8)
P4 (polar P1 (EAITgib WH) 8)
P2 P1
P1 (polar P1 (EAITgib WV) (- EAITebl 8))
)
(command EAITlay EAITlse "EAITstpg" ""
EAITlin P3 P4 ""
)
(command EAITege (strcat EAITpfn "37323v1") P1 "" "" (+ WH 180)
EAITzom EAITzov
)
(command EAITege (strcat EAITpfn "EAITinfo") (polar P2 (EAITgib WH) 15) "" "" WH
EAITbez1 EAITbez2 EAITlie1 EAITlie2 EAITwer1 EAITwer2 (rtos EAITl1 2 1) (rtos EAITb1 2 1) EAITnr
)
(EAITvarz2)
(princ)
);defun V1
(defun C:37323V2 (/ X L L1 NL P P0 P1 P2 P3 P4 P5 P6 P7 P8 P10 P11 P12 P13 P20 P21
n LGes W WHg WVg WHb WVb nx E1 SS1 BName dist )
(EAITDBL "0037323")
(princ (strcat "\n\n" EAITbez1))
(EAITvari)
(EAITvars)
;Einbaulage
(setq X nil)
(while (not X)
(if (not EAITebl)(setq EAITebl 10))
(princ (strcat "\n" (EAITmg "mb_mld15" "009")" (8 - 22) <"))(princ EAITebl)(princ "> : ") ;Einbaulage X (8 - 22) < EAITebl >:
(initget 6)
(setq X (getint))
(cond ((= X nil)(setq X EAITebl))
((AND (>= X 8)(<= X 22))(princ))
(T (setq X nil))
)
)
(setq EAITebl X)
;Lage + Anzahl
(setq L nil)
(while (not L)
(setvar "ORTHOMODE" 0)
(EAITbpt EAITofes 33 (EAITmg "mb_mld12" "017")) ; 1. Punkt:
(setq P20 (getpoint))
(if (= P20 nil)(setq P20 (EAITrpt)))
(EAITbpt EAITofes 33 (EAITmg "mb_mld12" "018")) ; 2. Punkt:
(setq P21 (getpoint P20))
(if (= P21 nil)(setq P21 (EAITrpt)))
(setvar "ORTHOMODE" 0)
(setvar "OSMODE" 512)
(EAITmsg "mb_mld12" "\n" "015" ": ") ;1. Nutlinie:
(setq NL (entsel " ")
P0 (cadr NL))
(setvar "OSMODE" 128)
(EAITmsg "mb_mld12" "\n" "016" ": ") ;2. Nutlinie:
(setq P1 (getpoint P0))
(setvar "ORTHOMODE" 0)
(setvar "OSMODE" 0)
(setvar "APERTURE" 4)
(setq P10 (osnap P0 EAITofend)
P11 (osnap P1 EAITofend)
P12 (osnap P0 EAITofmit)
P13 (osnap P1 EAITofmit)
P1 (mapcar '/ (mapcar '+ P12 P13) '(2 2 2))
W (angle P20 P1)
WHb (angle P20 P21)
WVb (+ WHb (/ Pi 2))
dist(distance P20 P1)
L1 (* dist (sin (- W WHb)))
P1 (polar P20 WVb L1)
WHg (EAITbig WHb)
WVg (EAITbig WVb)
)
(initget 6 "?")
(EAITmsg "mb_mld12" "\n" "019" " ") ;Anzahl der Multibloecke (2,3,...,?): <?>
(setq n (getint)
LGes (distance P20 P21) )
(cond ((or (= n nil)(= n "?")) (setq n (+ 2 (fix (/ (- LGes 300) 600)))) )
((= n 1) (setq n 2))
)
(setq L (/ (- LGes 300) (float (- n 1))))
(if (< L EAITlmin)(progn (setq L nil) (EAITmsg "mb_mld12" "\n" "006" " ")(princ EAITlmin)(EAITmsg "mb_mld13" nil "006" nil)(EAITmsg "mb_mld12" " " "020" "\n")))
;Ungültige Eingabe: es werden min. EAITlmin mm je Multiblock benötigt!
)
;Schleife
(setq P1 (polar P1 WHb (- 150 L) )
nx nil)
(repeat n
(setq P1 (polar P1 WHb L))
(if (not nx)
(progn
(setq nx 1)
(if (/= (cdr (assoc 2 (entget (car NL)))) nil) (command EAITurs P0) )
)
)
(command EAITzom EAITzof (mapcar '- P1 '(50 50 0)) (mapcar '+ P1 '(100 100 0)))
(if (= EAITebl 22)
(if (/= (ssget (polar P1 WVb 20)) nil)
(command EAITbru (polar P1 WVb 20) EAITbre (polar (polar P1 WHb 10) WVb 20) (polar (polar P1 WHb -20) WVb 20))
)
)
(if (= EAITebl 8)
(if (/= (ssget (polar P1 WVb -20)) nil)
(command EAITbru (polar P1 WVb -20) EAITbre (polar (polar P1 WHb 10) WVb -20) (polar (polar P1 WHb -20) WVb 20))
)
)
(if (/= (ssget (polar P1 WVb 4)) nil)
(command EAITbru (polar P1 WVb 4) EAITbre (polar (polar P1 WHb 10) WVb 4) (polar (polar P1 WHb -20) WVb 4))
)
(if (/= (ssget (polar P1 WVb -4)) nil)
(command EAITbru (polar P1 WVb -4) EAITbre (polar (polar P1 WHb 10) WVb -4) (polar (polar P1 WHb -20) WVb -4))
)
(command EAITzom EAITzov )
(if (= nx 1)
(progn
(setq nx 0)
(setq P3 (polar P1 WHb -8)
P4 (polar P1 WHb 8)
)
(command EAITlay EAITlse "EAITstpg" ""
EAITlin P3 P4 ""
)
(command EAITege (strcat EAITpfn "37323v1") (polar P1 WVb (- EAITebl 8)) "" "" WHg
)
(command EAITege (strcat EAITpfn "EAITinfo") (polar (polar P1 WVb (- EAITebl 8)) WHb -15) "" "" WHg
EAITbez1 EAITbez2 EAITlie1 EAITlie2 EAITwer1 EAITwer2 (rtos EAITl1 2 1) (rtos EAITb1 2 1) EAITnr
)
)
(progn
(command EAITege (strcat EAITpfn "37323v1") (polar P1 WVb (- EAITebl 8)) "" "" WHg
EAITege (strcat EAITpfn "EAITinfo") (polar (polar P1 WVb (- EAITebl 8)) WHb 2.5) "" "" WHg
EAITbez1 EAITbez2 EAITlie1 EAITlie2 EAITwer1 EAITwer2 (rtos EAITl1 2 1) (rtos EAITb1 2 1) EAITnr
)
)
)
)
(EAITvarz2)
(princ)
);defun V2
(defun C:37323D1 (/ P1 S)
(EAITDBL "0037323")
(princ (strcat "\n\n" EAITbez1))
(EAITvari)
(EAITvars)
(setvar "ORTHOMODE" 0)
(EAITbpt EAITofnaec 512 nil)
(setq P1 (getpoint))
(if (= P1 nil)(setq P1 (EAITrpt)))
(setvar "ORTHOMODE" 1)
(setvar "OSMODE" 0)
(initget (strcat (EAITmg "mb_mld13" "008") " " (EAITmg "mb_mld13" "009")))
(EAITmsg "mb_mld12" "\n" "021" " ")(EAITmsg "mb_mld13" nil "008" "/<")(EAITmsg "mb_mld13" nil "009" ">")
;Vollstaendige Darstellung der Multiblöcke ? Ja/<Nein>
(setq s (getreal))
(if (= s (EAITmg "mb_mld13" "008"))(setq s (strcat EAITpfn "37323d1"))(setq s (strcat EAITpfn "37323d2")))
(EAITmsg "mb_mld10" nil "003" nil) ;Drehwinkel
(command EAITege S P1 "" "" EAITofkei pause)
(command EAITege (strcat EAITpfn "EAITinfo") (polar P1 (EAITbw) 2.5) "" "" (EAITbig (EAITbw))
EAITbez1 EAITbez2 EAITlie1 EAITlie2 EAITwer1 EAITwer2 (rtos EAITl1 2 1) (rtos EAITb1 2 1) EAITnr
)
(EAITvarz2)
(princ)
);defun D1
(defun C:37323D2 (/ L P10 P11 W WH n LGes nx P0 s s1)
(EAITDBL "0037323")
(princ (strcat "\n\n" EAITbez1))
(EAITvari)
(EAITvars)
;Lage + Anzahl
(setq L nil)
(while (not L)
(setvar "ORTHOMODE" 0)
(EAITbpt EAITofes 33 (EAITmg "mb_mld12" "017")) ; 1. Punkt:
(setq P10 (getpoint))
(if (= P10 nil)(setq P10 (EAITrpt)))
(EAITbpt EAITofes 33 (EAITmg "mb_mld12" "018")) ; 2. Punkt:
(setq P11 (getpoint P10))
(if (= P11 nil)(setq P11 (EAITrpt)))
(setvar "ORTHOMODE" 0)
(setvar "OSMODE" 0)
(setq W (angle P11 P10)
WH (+ (EAITbig W) 90) )
(initget 6 "?")
(EAITmsg "mb_mld12" "\n" "019" " ") ;Anzahl der Multibloecke (2,3,...,?): <?>
(setq n (getint))
(setq LGes (distance P10 P11))
(cond ((or (= n nil)(= n "?")) (setq n (+ 2 (fix (/ (- LGes 300) 600)))) )
((= n 1) (setq n 2))
)
(setq L (/ (- LGes 300) (float (- n 1))))
(if (< L EAITlmin)(progn (setq L nil) (EAITmsg "mb_mld12" "\n" "006" " ")(princ EAITlmin)(EAITmsg "mb_mld13" nil "006" nil)(EAITmsg "mb_mld12" " " "020" "\n")))
;Ungültige Eingabe: es werden min. EAITlmin mm je Multiblock benötigt!
)
(initget (strcat (EAITmg "mb_mld13" "008") " " (EAITmg "mb_mld13" "009")))
(EAITmsg "mb_mld12" "\n" "021" " ")(EAITmsg "mb_mld13" nil "008" "/<")(EAITmsg "mb_mld13" nil "009" ">")
;Vollstaendige Darstellung der Multiblöcke ? Ja/<Nein>
(setq s (getreal))
(if (= s (EAITmg "mb_mld13" "008"))(setq s1 (strcat EAITpfn "37323d1"))(setq s1 (strcat EAITpfn "37323d2")))
;1. Einfügen
(setq nx nil
P0 (polar P11 W (- 150 L)) )
(repeat n
(setq P0 (polar P0 W L))
(command EAITege s1 P0 "" "" (+ WH 90)
EAITege (strcat EAITpfn "EAITinfo") (polar P0 (EAITbw) 2.5) "" "" (EAITbig (EAITbw))
EAITbez1 EAITbez2 EAITlie1 EAITlie2 EAITwer1 EAITwer2 (rtos EAITl1 2 1) (rtos EAITb1 2 1) EAITnr
)
)
(EAITvarz2)
(princ)
);defun D2
(princ)